package com.lovi.myusercenter.service;

import com.lovi.myusercenter.domain.User;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.http.HttpRequest;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @author Administrator
* @description 针对表【user】的数据库操作Service
* @createDate 2023-08-11 16:50:06
*/
public interface UserService extends IService<User> {
    /**
     * 用户注册
     * @param userAccount 用户账号
     * @param password 用户密码
     * @param checkPassword 用户确认密码
     * @return 新注册用户的id
     */
    public long userRegister(String userAccount , String password, String checkPassword);

    /**
     * 用户登录
     * @param userAccount 用户账号
     * @param password    用户密码
     * @param request     用户请求登录态
     * @return 脱敏后的用户
     */
    public User userLogin(String userAccount , String password, HttpServletRequest request);

    /**
     * 用户注销
     * @param request
     * @return 1=注销成功
     */
    public int userLogOut(HttpServletRequest request);

    /**
     * 用户信息脱敏
     * @param user 原来的用户
     * @return  脱敏后的用户
     */
    User getSafeUser(User user);

    /**
     * 权限鉴定
     * @param request 用户session信息
     * @return 用户是否有权限
     */
    public boolean hasAdminAuthority(HttpServletRequest request);

    /**
     * 获取所有用户信息
     * @return 脱敏后的用户列表
     */
    public List<User> getAllUsers();



}
